home *** CD-ROM | disk | FTP | other *** search
- ≡≡
-
- Introduction
-
- Introduction
-
- LASICKT.EXE is a LASI CAD System utility program that can analyze
- drawings made using LASI and write a SPICE circuit file. It can do both
- "schematic capture" and "layout capture". SPICE code will be written for
- circuits with individual devices, and any subcircuit definitions that may
- be necessary will also be created.
-
- In addition to writing a SPICE circuit file, LASICKT also writes a file
- that lists the nodes and their device connections. This can be used to
- check for missing or open connections between a schematic and a layout.
-
- Circuit nodes can be marked explicitly, or LASICKT can automatically find
- nodes on a layout or schematic. The program also can look for certain
- types of shorts and open connections, and in a rudimentary way calculate
- the capacitance of interconnections.
-
- LASICKT uses normal LASI text objects to mark nodes and to pass device
- name and parameter information to the SPICE code. Both header and footer
- text files may be appended automatically to the generated SPICE circuit
- file. These files may contain extra information such as model and
- subcircuit definitions or operating statements.
-
- LASICKT has a very good use: it can be used to verify that an IC will
- probably work after the IC has been completely drawn using LASI. LASICKT
- therefore gives reassurance to anyone making ICs with LASI, and also
- allows "heuristic processing" for students using LASI as an educational
- tool.
-
- The SPICE code produced by LASICKT is written for use with PSpice. If
- incompatible with another SPICE that you may be using, or if you have a
- particular problem with the way that LASICKT works, contact the author
- for possible fixes, advice or improvements. Since doing what LASICKT does
- is no trivial task, expect future changes.
-
- How LASICKT Works
-
- The Basic Idea
-
- LASICKT works by placing text on specific layers at specific locations in
- a LASI drawing.
-
- In a LASI drawing of an IC or electrical circuit, the circuit devices are
- simply cells interconnected with lines or areas. To mark how a circuit is
- connected you use text on two different layers. The two types of text are
- called NODE NAMES and CONNECTORS.
-
- Node Names give the lines and areas used for interconnection in a circuit
- a definite name. Without a node name, LASICKT will make up a "virtual"
- name.
-
- Connectors locate the "connection points" on a cell and pass that
- location to higher ranking cells where that particular cell is being
- connected as part of a larger circuit.
-
- This may be diagrammed as follows:
-
-
- CONNECTOR to
- | next cell up NODE (Named or Virtual)
- | / / (marks interconnection with name)
- | / /
- ┌──|─/─────────────/──────┐
- │ ■C2 ■N1 │ Higher Rank Cell Interconnect Area
- └────────────────────────┘
- Position | CONNECTOR Text (marks connection)
- Passed Up | /
- ┌────────|─/─────────┐
- │ ■C1 │ Lower Rank Cell Interconnect Area
- └────────────────────┘
-
- In the above, connector C1 is connected to node N1 in the higher cell.
-
-
- This process of passing connections can be extended to the full depth of
- cell nesting. Cell nesting in LASI is similar to the way that SPICE
- works, that is, SPICE arranges devices into subcircuits which correspond
- to LASI's cells. LASICKT's NODES (named or virtual) correspond to what
- SPICE calls nodes, however CONNECTORS are graphical entities that have no
- real equivalent in SPICE.
-
- SPICE code also requires that you give devices NAMES and pass certain
- device PARAMETERS. To indicate device names and parameters you use two
- additional layers and write the text directly on the cells. The text is
- literally passed on to the SPICE code.
-
- LASICKT uses text written on a total of four different layers to control
- the SPICE code that it generates.
-
- Device Definition Statements
-
- A device statement in SPICE can be considered to have three fields.
- LASICKT builds a device definition by filling in these fields using text
- that it finds on a drawing:
-
- ┌──────┬───────┬───────┐
- │ NAME │ NODES │ PARAM │
- └──────┴───────┴───────┘
-
- NAME is the a predefined device name beginning with R,C,Q, etc. It may
- also be a subcircuit name starting with X. NAME may also include a logic
- device type (NAND(2) for example). When you use LASICKT this text is
- placed on the "Device Text Layer" and is passed to the definition as the
- first field.
-
- NODES is a sequence of node names that LASICKT constructs, and is placed
- second in the SPICE definition. The node names are determined from node
- name text and any virtual node names.
-
- PARAM is text placed on a "Parameter Text Layer". It is passed literally
- to the last field. This contains such things as MODEL and SUBCKT names
- and adjustable parameters. This text can become pretty wordy so multiple
- lines are allowed.
-
- Devices, Subcircuits and Cells
-
- It is important to understand how SPICE devices translate from LASI
- cells. LASI's boxes and paths are NOT devices; they only serve to connect
- things together (on interconnect layers). A minimum device is a rank 1
- cell. For example, a single NPN transistor, whether drawn as a symbol or
- a layout figure is a simple device (Q-type). A NAND gate even though it
- may have several transistors and resistors is a single U-type device.
-
- If several devices are connected together they form a subcircuit
- (SUBCKT), which can be used as an X-type device. A LASI cell must be at
- least rank 2 to become a subcircuit since it must contain other cells.
-
- To add to the confusion, there is no reason why you can't define a SUBCKT
- separately, and include it as a rank 1 cell in a cell of rank 2 or
- greater. The OPAMP cell in the demonstration layout (DEMO.EXE) has a rank
- 1 PNP current source SUBCKT.
-
- You can conclude that rank 1 cells will contain no nodes or node name
- text, since they have no devices to interconnect. (There is an exception
- with global symbols explained below.) Rank 1 cells will however have
- connector text to tell any higher cells where to connect to them.
-
- A rank 2 cell will normally have nodes that connect its devices or cells
- together. If a rank 2 or greater cell is the "top" cell it will have no
- connectors; otherwise it will have connectors to connect itself to the
- cell above it.
-
- A top cell will always have node names on its external connections so
- that it can be properly referenced for input and output.
-
- Types of Text
-
- Node Name Text
-
- Node name text is LASI text that labels an object (box, path, polygon or
- line) that is used for interconnection with a definite name.
-
- Applying certain rules, LASICKT finds just which objects on a certain
- layer are connected geometrically together into what might be called a
- "node island", and gives them the node name that labels (at least) one of
- them. These node names are placed directly in the SPICE code. Named nodes
- are only "seen" by LASICKT within the cell that contains those objects.
-
- Virtual Nodes
-
- If it finds connections without a node name, LASICKT is smart enough to
- make up its own name for a node. Once LASICKT has looked for all possible
- associations between node name text and lines and areas, it will make up
- a "virtual" node name for any lines or areas that remain. This is not
- actual drawing text, but a number with a prefix you can choose. As with
- node name text, these node names will be placed in the SPICE code.
-
- Note: Once one or more objects are found by LASICKT to be a single node
- island and they have been given a node name (text or virtual), those
- objects collectively can be called a "node", which is what SPICE
- actually refers to as a node.
-
- Connector Text
-
- Connectors MUST be placed on a layer different from node name text.
-
- Connector text "communicates" the nodes of a cell up to a higher rank
- cell that contains that cell. In the higher cell, the connector is
- "attached" to an object that is used for interconnection. Connectors are
- only "seen" by LASICKT in the higher ranking cell.
-
- Connectors locate the "electrical connection points" in a cell, and are
- normally placed on a cell in locations that "electrically connect" to the
- outside world.
-
- Connector text MUST contain a SEQUENCE NUMBER in the text that indicates
- the RELATIVE ORDER of the nodes in the SPICE device definition statement.
-
- For example, an NPN transistor might have the connectors "1-C", "2-B",
- and "3-E" that correspond to the SPICE transistor device's node order.
- The number of the connector will be taken from the first digit found in
- the text, that is, "1-C" and "C-1" are equivalent.
-
- At the moment, 64 connectors are permitted on a single cell, and a total
- of 2048 connectors may be passed to the next higher cell.
-
- Note: Different cells can use the same connector text and sequence
- numbers, since only the relative order of the sequence numbers in a
- particular cell is important.
-
- Name and Parameter Text
-
- SPICE requires devices to be named, and also needs various parameters to
- be included in device definition statements. LASI text may be used to
- pass literal text information to SPICE definitions. Two different layers
- are used to pass DEVICE NAMES and DEVICE PARAMETERS independently. You
- simply write this information on your drawing and it is passed to SPICE.
-
- Since a cell is a device, to pass text to SPICE, you place the text
- reference point within the OUTLINE of the cell. This associates the text
- with that cell only. Be careful not to put text on more than one cell or
- it will be passed to all.
-
- If you put device text IN a cell but not ON any lesser cells, the text is
- used to construct a SUBCKT if the cell is not the top cell.
-
- A drawing that is to be processed by LASICKT is therefore a well
- documented drawing, since each cell will have information about itself
- written directly on it.
-
- Global Symbol Cells
-
- As a compromise with standard practice used in schematics, LASICKT allows
- you to make rank 1 cells into little objects that act like box objects
- that may be used to interconnect devices. The difference is that they
- carry around a node name and a little picture.
-
- The best example is a ground symbol. To SPICE this is a global node "0",
- but when you use it in a drawing it connects to only one point. It
- therefore labels a node as grounded, but connects nowhere else.
-
- To make a global symbol you take a rank 1 cell and place NODE NAME text
- on it. You place NO CONNECTOR text on it as you would do normally to
- connect to the cell. The OUTLINE of the cell becomes equivalent to a box
- of the same dimensions, and if a connector from another cell falls in
- that area, the cell's connector is labeled with that symbol's node name.
-
- For example, if a ground symbol cell overlays a connector on a
- transistor's emitter, and if that symbol cell has "0" on the node name
- layer written on it, that emitter is then set at node "0", and forever
- grounded.
-
- Note: Any global node names other than "0" should be declared in a
- .GLOBAL statement in the SPICE file.
-
- Text Placement Rules
-
- Node Name Text Rules
-
- For named node text to label drawing objects, the text must be located so
- that the text can be uniquely identified. The following rules apply to
- the placement of node name text:
-
- 1. Text is always located by its reference point and is independent of
- the size of the text or its orientation.
-
- 2. Node name text must be located on objects that are on one of the
- layers used for interconnection as follows:
-
- ■ For boxes, the text reference must be ON an edge or WITHIN the area of
- the box.
-
- ■ For paths WITH WIDTH, the text reference must be WITHIN the path area
- or ON a horizontal or vertical edge.
-
- ■ For OPEN paths WITHOUT WIDTH (lines), the text reference must be ON a
- vertex or WITHIN a horizontal or vertical segment.
-
- ■ For closed paths WITHOUT WIDTH (polygons), the reference must be WITHIN
- the area of the polygon.
-
- Connector Text Rules
-
- Connector text can be located anywhere, but should be located where
- actual electrical connection is to be made in a layout or schematic.
- There is NO checking that an actual electrical connection is made or
- that any design rules ar obeyed. Connector text follows these rules:
-
- 1. Connector text MUST ALWAYS be connected (or attached) to an object
- used for interconnection in the NEXT HIGHER CELL. If not, you will get
- an "Open" error when you run the program.
-
- 2. A connector is attached to a node in the NEXT HIGHER CELL following
- the same rules as node name text listed above.
-
- 3. If you place a NODE NAME text reference point EXACTLY on the CONNECTOR
- text reference of the cell below it, the connector will connect to the
- node. This has a very handy if you want to connect to a point that is
- not on an interconnection layer. An example would be connecting the
- substrate of a transistor which normally has no metallized connection.
-
- Passed Text Rules
-
- For text to be passed to the SPICE code, certain rules must be followed:
-
- 1. Device name and parameter text must be located on two different layers
- that are different from the node or connector text layers.
-
- 2. The text reference must be located WITHIN or ON the OUTLINE of a
- lesser cell to be passed that SPICE device.
-
- 3. If a PARAMETER text reference is NOT on the OUTLINE of ANY cell, it
- will be passed to the SUBCKT definition if the overall cell is made
- into a SUBCKT.
-
- 4. LASI text is up to 40 characters long. If more is needed multiple
- lines must be used.
-
- 5. Text on multiple lines will be assembled into a single line in a
- descending Y order.
-
- 6. If a "+" is placed at the beginning of a text string a new line
- (CR-LF) will be inserted, which corresponds to SPICE convention.
-
- 7. If a "*" is placed at the beginning of a text string a new line will
- be inserted. This lets you put comments in the SPICE code.
-
- 8. Each text line will have a SPACE inserted after it, so that on
- multiple lines you don't have to put spaces in your text.
-
- Interconnection Rules
-
- Interconnection Rules
-
- LASICKT connects objects (boxes, paths, polygons and lines) following
- these rules:
-
- 1. Objects must be in the same cell and be on the same layer or layer
- group to connect.
-
- 2. Several interconnection layers may be listed in the program setup. If
- they are listed separated by spaces they are all independent and do
- not connect to each other.
-
- 3. If layers are listed separated by spaces but in a GROUP enclosed in
- PARENTHESES, they all interconnect as if they were a single layer.
-
- 4. Boxes, paths with width and closed polygons are all AREAS.
-
- 5. Areas connect if they overlap or are contiguous on a horizontal or
- vertical edge.
-
- 6. Open paths without width are LINES.
-
- 7. Lines connect if they have ANY vertices that are coincident.
-
- 8. Lines connect if a vertex of one falls WITHIN a horizontal or vertical
- segment of the other, as in a "T" or an "L". This is normal schematic
- convention.
-
-
- If an interconnection has to go through some kind of a crossover
- structure (polysilicon underpass for example in an IC), you must do one
- of the following:
-
- ■ Place the same node name text on both sides of the crossover to
- indicate that it is the same electrical node.
-
- ■ Make the crossover into a cell and give the end nodes different node
- name text or allow them to be virtual nodes.
-
- The latter is useful if the crossover has some electrical effect, such as
- significant resistance. Also note that you can't put the crossover and
- the interconnect layer in a group enclosed by parentheses, because they
- will short out.
-
- LASICKT does not know how to trace through different layers in an IC to
- determine connections since it is not "process specific".
-
- Capacitance
-
- Capacitance
-
- LASICKT will calculate the approximate parasitic capacitance of the
- interconnect layers to ground, and add a capacitor device to the SPICE
- code. For the moment this is the same for all layers, but may be made
- layer dependent in the future if it really proves valuable. LASICKT
- calculates all the areas, but ignores overlaps. Lines used in schematics
- are ignored.
-
- The capacitance is in pF per square physical unit that you used to do
- your drawing, i.e. pF/sq-um typically.
-
- The parasitic capacitor will be named "C_NODE", where NODE is the node
- name text that labels the areas.
-
- Running LASICKT
-
- LASICKT Setup
-
- When you first run LASICKT from the DOS command line, it will come up in
- a setup screen. The setup is saved as LASICKT.SET and returned when you
- run the program again. Setup parameters are as follows:
-
- 1. "Name of Cell" is the main cell that you want analyzed and converted.
- The program will produce a SPICE file with the extension ".CIR" using
- this cell name. The node list file will be written with the cell name
- but with a ".LST" extension.
-
- 2. "Header and Footer Files" are the names of files you may want to
- include in the SPICE file. These filenames may be "global" files used
- with several drawings and therefore may include a path. These files
- may contain such things as .MODEL definitions of your devices. These
- are completely arbitrary and may be omitted by simply putting in a
- name of a file that doesn't exist or leaving the name blank by
- entering only a space character.
-
- 3. "Virtual Node Prefix" is the name of any virtual nodes to which a
- number will be added. This should be short as possible, and case is
- preserved.
-
- 4. "Interconnect Layers" is a list of layer numbers. These are the
- layers that are used for connecting devices, if more than one. These
- numbers should be separated by a space and groups may be enclosed by
- parentheses to allow more than one layer to connect. For example,"2 (4
- 8)" will connect 2 independently, but 4 and 8 will connect together.
- You may enter a maximum of 8 layers or 8 groups of up to 8 layers.
-
- 5. "Interconnect Capacitance" is the approximate unit capacitance of the
- interconnect layers to ground. The capacitance is in pF per square
- physical unit that you used in your drawing, i.e. pF/sq-um typically.
- If you make this parameter equal to zero (0). the program will run
- faster because it will not bother to calculate the areas of the
- various interconnections.
-
- 6. "Named Node, Connector, Device Name and Parameter Text Layers" are the
- layers that you used for those respective text in your drawing. All
- must be different layers, and all must be layer 1-64.
-
- The last setup line is the switches used to control error checking and
- reporting. These are explained separately below.
-
-
- To run LASICKT after the setup, press F10.
-
- To abort at any time, press ESC.
-
- Error Switches
-
- The final setup line contains four yes/no switches. These control the
- following error checks:
-
- Opens
-
- If LASICKT finds that a connector on a cell is "open" it will warn you.
- To be connected, the connector must be attached to an interconnect
- layer in the higher ranking cell where the cell is used. Attaching a
- global symbol or putting a node exactly on the connector will also
- satisfy the connection. This is an error that is easy to make.
-
- An "open" connector will be written to the SPICE code as a "?", since
- there will be no node name available.
-
- When you are satisfied that there are no actual errors, you can set
- this to "n".
-
- Shorts
-
- If LASICKT finds two objects connected but with different node names,
- it will report it as a "short". SPICE code will still be written, but
- it could have a node conflict that your SPICE analysis program should
- eventually discover.
-
- You might see the same error twice. LASICKT cross checks, so that if
- one object connects to a second, the second will also be found to
- connect to the first.
-
- A second way you can have a short is if you put more than one connector
- with the same sequence number on a cell. This is permitted, but it
- possible to connect different nodes to the same actual connector. The
- error message will indicate the cell and the position.
-
- If you are sure that there are no shorts, set this to "n" and the
- program will run faster because the number of objects checked will be
- greatly reduced.
-
- IMPORTANT: Shorts checking on interconnections should not be confused
- with checking for shorts on an overall layout. LASICKT checks for node
- naming conflicts, not actual shorts, since it really doesn't know how a
- circuit is to be connected. It checks only at a single cell level, and
- not the composite of several cell nestings.
-
- Floats
-
- This indicates that a cell exists that is not attached to anything in
- the circuit. This will detect cells that you forgot to connect, or such
- things as test transistors that would not be normally connected.
-
- Turn off the warning message with "n" if you have a problem. Failure of
- this test is just a warning since the floating device will not appear
- in the SPICE code.
-
- Devices
-
- This checks if a device definition statement contains both device name
- and device parameter text. All SPICE devices require that you specify
- the device name and almost all devices have parameters of some kind.
- This does not check the correctness of the text, just if it is present.
- A SPICE statement will contain "???" if device text is missing.
-
- Turn this test off with "n" if it causes any problems. Failure of this
- test usually incorrect device statements.
-
- Run Operations
-
- As LASICKT analyzes a drawing it will indicate what it is doing in the
- "Operations" box. It will show the name of the cell and the particular
- operation. Any error warning messages will appear in the "Messages" box.
-
- A count of the devices, nodes and connectors will be displayed in the
- "Counts" box. This is useful to see just what LASICKT has found, and to
- verify just what you think it should find. This is explained below.
-
- LASICKT will first search for global symbols in the drawing cell
- collection. Then, for the main circuit and each possible subcircuit, it
- will search for the nodes that you have named, and then it will try to
- connect the objects on the interconnect layers. It will then try to
- create and connect any virtual nodes that may be needed. Connecting
- virtual nodes takes somewhat longer.
-
- Whenever LASICKT looks for interconnections it does multiple passes,
- extending connections one at a time, until it finds no more.
-
- Hint: To speed things up, use named nodes, not virtual nodes, unless you
- have a fast computer or can wait. Every time a virtual node is created
- there has to be a complete search of all interconnections.
-
- Finally, once it has learned enough about your drawing, the program will
- write SPICE code to the .CIR output file, and will write node list
- information to the .LST file. This will be done in stages, depending on
- any subcircuits. Each cell listed as being analyzed will be translated
- into either the main circuit or into a subcircuit definition.
-
- Count Display
-
- As LASICKT runs, it keeps score and displays the following:
-
- ■ The count of devices in the cell, or actually the number of lesser
- cells.
-
- ■ The number of nodes, named and virtual that it reads or creates in the
- cell that it is analyzing, and their sum.
-
- ■ The count of connectors that it sees passed up from the lesser cells.
-
- ■ The number of named, virtual and symbol nodes that it attaches to the
- connectors, and their sum. These numbers are IMPORTANT because their
- sum should equal the count of connectors.
-
- The Node List File
-
- The Node List File
-
- When LASICKT finishes writing SPICE code statements for a circuit, it
- resorts the information and uses it to write a list of nodes in ascending
- ASCII order in the Node List File. The name of this file is the main cell
- name with the extension ".LST". Each node name is followed by the device
- names and the connector sequence number for each device connection. The
- name and number are separated by a period. "R2.1" for example says that
- connector 1 of device R2 is connected to a particular node.
-
- The main circuit and any subcircuits are listed independently. Remember
- that node names are local and belong only to the circuit in which they
- appear, (except for global nodes) and should not be confused with similar
- node names in different circuits.
-
- An Example
-
- An Example
-
- The best way to see how LASICKT works is to have an example. The LASI
- demonstration layout (compressed in DEMO.EXE) contains a layout of a
- small opamp (OPAMP) and a schematic ($OPAMP). This has been marked with
- text so that LASICKT can process it.
-
- The node names are on layer 60, connectors 61, device names 62 and
- parameters are on layer 63. Interconnections are metal on layer 8 for the
- layout and 32 for the schematic. There is also a global cell used for the
- ground symbol. The PNP current source is a SUBCKT defined in OPHDR.LIB.
-
- Notice that only a few nodes are marked. The rest are virtual nodes. This
- is probably what would normally be done by someone using LASICKT.
-
- You only need to use text if you want to force a name. (such as "0")
-
- You can run LASICKT on OPAMP or $OPAMP and see what is produced. You will
- find a few intentional errors - try to fix them.
-
-